The invention relates generally to methods and apparatus for testing software, and more particularly to methods and apparatus for testing software, such as drivers, on a plurality of different test stations having a different hardware configuration.
Product testing has become an integral part of the success of products. Some products require both the testing of hardware and associated software. For example, in the field of graphic controllers, graphic processors have associated software drivers to suitably control operation of the graphics processor. Graphics processors are typically one of many components in a computer system or appliance which includes, for example, a host processor, system memory, operating system and other software applications. With the rapid changes in hardware configurations by differing manufacturers for computer systems and other data processing devices, and with the rapid development of differing software drivers for various hardware components, there is a need to test a software driver on computer systems having, for example, differing operating systems, hardware configurations, host processor speeds, and different applications to ensure that the software under test is operates properly in the proper environments prior to release.
Oftentimes, software and hardware testing is performed manually after an operator configures both the hardware and the software to be tested, to a set of required conditions. The test results often have to be manually analyzed to determine whether the test was successful and if not, which areas require further evaluation or interpretation. Moreover, where a group of computers are being used as a set of test stations, a limited type and number of software tests are performed on the fixed hardware configuration. Differing test stations such as desktop computers, may have differing hardware such as differing sized non-volatile and volatile memory, differing speed host processors, differing graphic processors, and other differing hardware.
Conventional software test systems typically do not provide detection of the type of hardware on a given test station among a plurality of test stations. In addition, if testing requires that a test station have a different operating system, the user typically has to manually load a new operating system on a given test station. Moreover, if another test is run on the same system, previous register settings can prevent a subsequent test from running properly. Also, where a plurality of different software has to be tested on differing hardware set ups with differing operating systems, the testing can take inordinate amounts of time and man hours. Test systems cannot typically determine the type of hardware in any given test station automatically to allow a user to choose which test station is more suitable for a given test.
Some conventional test software, such as Test Director, available from Innovative Software 1325 Borregas Ave, Sunnyvale Calif., 94089, provides automatic test analysis of test results to reduce the time necessary to determine whether or not software under test suitably performs on a given hardware environment and operating system. However, such test analysis software does not provide test system configuration capabilities, operating system selection or replacement capabilities, or other suitable test system capabilities that may improve software testing efficiency.
In addition, software imagers are known that cast an image (i.e., clone software) to a harddrive of a computer system. For example, a product known as Image Cast(trademark), available from Innovative Software, 7040 North Port Washington Rd, Suite 410, Milwaukie, Wis., 53217 can allow a single server to clone multiple computer harddrives with the same image. However, no software test system is known which allows differing test stations under control of a common server to be configurable with different operating systems. Accordingly, conventional test systems cannot provide, among other things, user selectability of test station configuration wherein a group of test stations is associated with a given server.
In addition, it would be desirable to provide scalability of either user units, test centers or test stations to provide dynamic increasing of test capabilities by a plurality of test servers. The addition of additional test stations to a test center server should not interrupt the testing of other test stations associated with the test center server.
Component-based application development techniques are known, such as .dll files, breaks applications into dynamically loaded libraries. In addition, active X linking and embedding software is known which uses object-oriented software components to provide separate modules that can interact with one another. In addition, memory map file based interprocess communication techniques are known which provide a memory map file in volatile memory which can be accessed by other applications to provide control information and other information for use by a plurality of applications. However, such systems are not typically used in test system configurations.
Accordingly, a need exists for an improved software test system and method.